package com.easylinkin.linkappapi.circuit.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.easylinkin.linkappapi.circuit.dto.RailLinkappAiHostRecordDTO;
import com.easylinkin.linkappapi.circuit.entity.RailLinkappAiHostRecord;
import com.easylinkin.linkappapi.circuit.vo.RailLinkappAiHostRecordVO;
import com.easylinkin.linkappapi.circuit.vo.RailLinkappAiHostRecordStatisticsVO;
import com.easylinkin.linkappapi.device.entity.Device;
import com.easylinkin.linkappapi.mechanical.entity.EquipmentLocation;
import com.easylinkin.linkappapi.openapi.dto.DatapushDTO;

import java.util.List;
import java.util.Map;

public interface IRailLinkappAiHostRecordService extends IService<RailLinkappAiHostRecord>{

    void datapushHandler(DatapushDTO datapushDTO);

    Map<String, Object> aiBehaviorAlerts();

    Map<String, Object> nowDaySnapTotleLineChart();

    List<RailLinkappAiHostRecordVO> getList(RailLinkappAiHostRecordDTO dto);

    IPage<RailLinkappAiHostRecordVO> selectPage(Page page, RailLinkappAiHostRecordDTO customQueryParams);

    /**
     * 获取统计数据（当日和近7日）
     */
    RailLinkappAiHostRecordStatisticsVO getStatistics();

    /**
     * AI告警统计接口
     * 返回今日告警总次数、比较昨日、近一个月总次数、累计总次数
     * @return Map包含：nowSum(今日告警总次数)、growthSum(比较昨日)、intervalThirtySum(近一个月总次数)、sum(累计总次数)
     */
    Map<String, Object> getAiAlarmStatistics();

    RailLinkappAiHostRecordVO getNowByOne();

    List<RailLinkappAiHostRecordVO> codeByNewRecords(String tenantId,List<String> codes);

    Map<String, Object> byStatisticsLins(String tenantId, List<Device> devices, RailLinkappAiHostRecordDTO dto);

    Map<String,Object>getViolationBehaviorPieChart();

    Map<String, Object> getPrompt(String tenantId);
}
